Backgrounds

The text formatter TEX developed by Knuth [#!knuth!#] is widely used in preparing manuscripts of scientific papers and in the typesetting processes of several scientific journals and books (for a recent example, see [#!bcsj!#]). In particular, LATEX, a TEX macro package that was released by Lamport [#!lamport!#], has expanded the society of TEX users because of plainness.

Since the beginning of its history, TEX (LATEX) places special emphasis on mathematics typesetting. Hence, it has been accepted by scientists who have to write mathematic equations. In contrast, the TEX/LATEX typesetting is less popular in chemistry than in mathematics and other fields. One of the reasons is that there are few TEX/LATEX utilities for typesetting chemical structural diagrams.

Although LATEX provides us with a picture enviroment for drawing simple figures, its original commands are so primitive as to be directly applied to the drawing of structural formulas. Hence, the commands should be combined to produce more convenient macros.

Pioneering works by Haas and O'Kane [#!haas!#] and by Ramek [#!ramek!#] have provided such macros that allow us to typeset structural formulas. The macros of the former approach are available in the public domain, being named ChemTEX. Although they are easier to use than the original picture environment of LATEX, they still have some items to be improved. The most inconvenient item is the incapability of accommodating 10 or more substituents. It stems from the fact that one argument is used to assign one substituent (or one object) in each of the macros of Haas-O'kane's approach. Note that the direct usage of arguments enables us only to assign 9 or less substituents, because a macro in TEX/LATEX is capable of taking 9 or less arguments.

For example, the \steroid macro reported for typesetting a steroid skeleton takes 9 arguments [#!haas!#]:

\steroid{A1}{A2}{A3}{A4}{A5}{A6}{A7}{A8}{A9}
where Argument 1 (A1) can take `D' (a second bond between positions 1 and 2), `Q' (no action), or `R11' (a substituent on position 11 and the corresponding double bond); Argument 2 (A2) can take `D' (a second bond between positions 3 and 4), `Q' (no action), or `R3' (a substituent on position 3 and the corresponding double bond); Argument 3 (A3) can take `Q' (no action), or `R3' (a substituent on position 3 and the corresponding single bond); and so on. Through the total statement of arguments, only six substituents are specified, while the skeleton have 20 or more substitution positions to be considered.

Moreover, the specification of the arguments is not systematic, since so many functions are included into the macro within the restriction of the direct usage of arguments.

  1. One argument (Argument 2) specifies objects of two different categories e.g., inner double bonds and outer double bonds.
  2. Arguments 2 and 3 specify a substituent attaching to the same position (position 3).
  3. It is difficult without a reference manual to differentiate between one argument for specifying bonds and another argument for specifying substituents.
  4. The argument `Q' is selected to show no modification because this character is hardly ever found in a chemical structure formula. However, the use of this character may become necessary in future. Such explicit description of `no action' should be avoided.

As a result, the formats and contents of arguments are different from one argument to another and from one macro to another such that a typical TEX user, a secretary or a chemist author, may give up to memorize such macros. Hence, more systematic and convenient macros are desirable in order to spread the typesetting of chemical structures with TEX/LATEX.

The present package involves convenient macros for typesetting chemical structural formulas [#!fujita1!#]. These macros are based on techniques in which inner bonds, substituents and hetero-atoms on a skeleton are separately assigned without such limitation of numbers. The package [*] will be a more versatile tool if it is coupled with the macros which the author has released in a book [#!fujita2!#].